Консервация баз данных

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Консервация базы данных обычно включает в себя преобразование информации, хранящейся в базе данных, в форму, доступную в долгосрочной перспективе по мере изменения технологии, без потери первоначальных характеристик (контекста, содержания, структуры, внешнего вида и поведения) данных[1]. Консервацию базы данных не следует путать с резервным копированием. В то время как цель резервного копирования — сохранить версию базы данных, актуальную на конкретный момент времени, чтобы, в случае каких-то проблем иметь возможность быстро восстановить её и продолжить работу с ней, в том числе изменяя её, цель консервации — обеспечить доступ к неизменяемому содержимому базы данных на относительно долгий срок, в течение которого могли бы поменяться технические свойства СУБД, в которой эта база данных была создана, а прикладной ПО, использованное для создания консервируемой базы данных могло бы исчезнуть из доступа. Консервация не подразумевает оперативности восстановления, но направлена на максимально точное воспроизведение состояния в БД, в том числе в будущих системах, о которых нам на момент консервации БД ничего не известно.

С распространением баз данных были разработаны различные методы, помогающие сохранить базы данных и их содержимое. Эти методы различаются в зависимости от характеристик базы данных и конкретных целях консервации[2].

Существует три основных метода сохранения базы данных для консервации: миграция, XML и эмуляция. Существуют также определенные инструменты, программное обеспечение и проекты, которые были созданы для помощи в сохранении баз данных, включая SIARD, Digital Preservation Toolkit, CHRONOS и RODA[1].

Характеристики базы данных[править | править код]

Характеристики самой базы данных должны учитываться при попытке её сохранения. Реляционные базы данных являются унифицированными по своей структуре вне зависимости от конкретной СУБД — они состоят из таблиц, которые содержат данные в записях, и эти таблицы затем соединяются друг с другом с использованием ключей[3].

Корректная консервация баз данных NoSQL является более сложной задачей[4].

Базы данных характеризуются как открытые или закрытые, статические или динамические. Когда база данных считается открытой, это означает, что она открыта для добавления дополнительных данных, однако, когда база данных считается закрытой, это означает обратное — что она закрыта для новых данных из-за своего завершенного характера. База данных считается статической, если она содержит записи, которые не редактируются или не изменяются после их первоначального включения, однако база данных считается динамической, если она содержит записи, которые могут быть отредактированы в будущем. То, является ли база данных открытой и статической, открытой и динамической, закрытой и статической или закрытой и динамической, может влиять на методы, используемые для её консервации. Динамическую базу данных сохранить сложнее, чем статическую, потому что данные постоянно меняются, а сохранить открытую базу сложнее, чем закрытую, потому что данные постоянно добавляются. Чем чаще база данных изменяется либо в записи, либо путем добавления записи, тем чаще необходимо предпринимать шаги, чтобы зафиксировать это изменение для консервации[2].

Методы консервации баз данных[править | править код]

Три основных метода сохранения цифровых данных также могут быть применены к консервации баз данных. Эти методы включают миграцию, XML и эмуляцию[1].

Миграция[править | править код]

Метод миграции (также известный как неактивное архивирование)[3] включает перенос данных из устаревшей программы работающей с базой данных в более новый формат. Существует три метода миграции: миграция в систему с обратной совместимостью, обеспечение интероперабельности и преобразование в стандартный формат. Обратная совместимость предполагает использование более новых версий программного обеспечения для открытия, доступа и чтения документа, созданного с использованием более старой версии. При этом подразумевается, что ответственность за совместимость форматов данных ложится на разработчиков этого програмного обеспечения.

Интероперабельность включает снижение вероятности устаревания за счет обеспечения доступа к конкретному файлу с помощью более чем одной комбинации программного и аппаратного обеспечения.

Переход на стандарты предполагает перевод хранения данных из проприетарного формата в открытый, более доступный и широко используемый формат[1].

XML[править | править код]

Метод XML (также известный как нормализация XML)[3] включает преобразование исходной информации базы данных в стандартный формат XML. XML как формат не требует определенного аппаратного или программного обеспечения (кроме текстового редактора или текстового процессора) и читается как человеком, так и машиной, что делает его стабильным форматом для целей консервации и хранения[1] данных. Однако при преобразовании данных в XML формате некоторые интерактивные функции базы данных, такие как возможность делать запросы, теряются[3].

Эмуляция[править | править код]

Метод эмуляции включает воссоздание старой вычислительной среды с использованием новых технологий и программного обеспечения. Это позволяет устаревшему программному обеспечению, оборудованию или форматам файлов оставаться доступными в новых системах. Следовательно, устаревшая база данных может быть запущена на эмуляторе, который имитирует среду, в которой изначально была создана база данных[1].

Инструменты для консервации данных[править | править код]

SIARD[править | править код]

Версия 1.0 формата Software Independent Archiving of Relational Databases (SIARD) была разработана Федеральным архивом Швейцарии в 2007 году. Она была разработана для архивирования реляционных баз данных в независимой от поставщика программного обеспечения форме. Архив SIARD представляет собой пакет файлов в формате ZIP на основе XML и SQL:1999. Файл SIARD включает в себя как содержимое базы данных, так и машинно-обрабатываемые структурные метаданные, которые содержат структуру таблиц базы данных и их отношения. ZIP-файл содержит XML-файл, описывающий структуру базы данных (metadata.xml), а также набор XML-файлов, по одному на таблицу, в которых содержится содержимое таблицы. Архив SIARD также может содержать текстовые файлы и двоичные файлы, представляющие большие объекты базы данных (BLOB и CLOB). SIARD разрешает прямой доступ к отдельным таблицам, позволяя извлекать их для исследования их с помощью ZIP-инструментов. Архив SIARD не является рабочей базой данных, но поддерживает повторную интеграцию заархивированной базы данных в другую систему управления реляционными базами данных (RDBMS), поддерживающую SQL:1999. Кроме того, SIARD поддерживает добавление описательных и контекстных метаданных, не записанных в самой базе данных, и встраивание файлов документации в архив[5]. SIARD версии 1.0 был оформлен как стандарт eCH-0165 в 2013 году[6] .

SIARDDK — вариант формата SIARD 1.0 модифицированный Национальными Архивами Дании[7].

Версия 2.0 формата сохранения SIARD (первоначально известная как SIARD-E[7]) была разработана Федеральным архивом Швейцарии под эгидой проекта E-ARK.

Версия 2.0 основана на версии 1.0 и определяет формат, обратно совместимый с версией 1.0. И, по заявлениям разработчиков, также включающий лучшие свойства SIARDDK и формата DBML[7]. Новые свойства версии 2.0 включают в себя:

  • Обновление поддержки SQL:1999 до поддержки SQL:2008.
  • Поддержка всех типов SQL:2008, в частности определяемых пользователем типов данных (UDT).
  • Более явные правила проверки для определений типов данных с использованием регулярных выражений.
  • Поддержка хранения больших объектов вне файла SIARD с использованием URI "file: "
  • Поддержка «deflate» как механизма сжатия.

Версия 2.1 спецификации SIARD была опубликована разработчиками спецификации в июле 2018 года, но так и не была принята в качестве стандарта ECH[7].

DBML (Database Markup Language)[править | править код]

XML-схема созданная исследователем Хосе Карлосом Рамальо из Университета Минью для представления данных и информации о таблицах, взятых из реляционной базы данных. Была опубликована в 2007 году[8].

CHRONOS[править | править код]

CHRONOS (CSP Chronos Archiving) — это проприетарный программный продукт, который служит инструментом консервации базы данных[4]. CHRONOS разрабатывался с 2004 по 2006 год компанией CSP в сотрудничестве с факультетом компьютерных наук Высшей школы в Ландсхуте[4][9]. CHRONOS извлекает данные из системы управления базами данных и сохраняет их в архиве CHRONOS в виде текстовых или XML-файлов. Таким образом, ко всем данным можно получить доступ и прочитать их без системы управления базами данных или самой CHRONOS, поскольку они представлены в текстовом формате. Это устраняет необходимость поддерживать СУБД исключительно для чтения сохраненных статических баз данных, а также необходимость потенциально рискованного переноса файлов базы данных в новые форматы баз данных[9]. Хотя CHRONOS хранит данные в текстовом формате, его возможности запросов считаются сравнимыми с возможностями реляционной базы данных[4].

Database Preservation Toolkit[править | править код]

Среди шагов, проделанных проектом RODA для загрузки и сохранения реляционных баз данных в нормализованном формате, одним из важных стала разработка инструмента, предназначенного для сохранения архивных баз данных и последующего доступа к ним. Это инструмент был назван Database Preservation Toolkit или, сокращённо, DBPTK, dbtoolkit. При использовании Database Preservation Toolkit, для их нормализации данные из реляционной базы данных преобразуются либо в DBML либо в SIARD. Оба этих формата опираются на стандартный формат XML, который не требует специального или проприетарного программного обеспечения и идеально подходит для целей консервации данных[10].

DBPTK позволяет выполнять преобразование между форматами баз данных, в том числе в режиме подключения к работающим системам, в целях консервации баз данных. В процессе преобразования инструментарий извлекает уникальную информацию о СУБД, используя коннекторы, специфичные для СУБД. Эти коннекторы подключаются к конкретной СУБД, извлекают из неё данные. Затем данные экспортируются в выбранный формат консервации. Для подключения к новым СУБД и сохранения данных в новых форматах могут быть разработаны новые коннекторы (модули ввода-вывода)[10][11]. DBPTK также позволяет экспортировать данные из форматов консервации обратно в работающую СУБД. Например, он поддерживает специализированный экспорт в MySQL, оптимизированный для PhpMyAdmin, поэтому с базой данных можно полноценно экспериментировать, используя веб-интерфейс.

Database Preservation Toolkit изначально был частью проекта RODA, а затем был выпущен как самостоятельный продукт. Он получил дальнейшее развитие в проекте E-ARK вместе с новой версией формата сохранения SIARD[12].

Проекты по консервации баз данных[править | править код]

Исследовательские проекты в этой сфере включают:

  • Software independent archival of relational databases (SIARD)[13]
  • Software Database Preservation Toolkit (open-source, поддерживает SIARD 2.0)[11]
  • Repository of Authentic Digital Objects (RODA)[14]
  • Digital Preservation Testbed[15]
  • Проект Lots of Copies Keep Stuff Safe (LOCKSS) разрабатывавшийся под руководством библиотек Стэнфордского университета[16]

Repository of Authentic Digital Objects (RODA)[править | править код]

RODA, он же — Repository of Authentic Digital Objects был проектом, запущенным в Португалии в 2006 году Национальным архивом Португалии с целью сохранения цифровых объектов, созданных государственными учреждениями Португалии. Целью проекта было объединить несколько типов цифровых объектов в один репозиторий, включая реляционные базы данных. Являясь единым хранилищем множества различных типов цифровых объектов, RODA стремится нормализовать все загруженные объекты, то есть свести к минимуму типы форматов, используемые для хранения документов, и сохранять подобные документы в одинаковых форматах[10].

В проекте RODA особое внимание уделялось созданию стандартизированного метода сохранения баз данных как цифровых объектов. Сохранение базы данных представляет собой уникальную задачу, поскольку процесс сохранения разделен на три уровня: данные, структура (логика) и семантика (интерфейс)[17]. В задачах проекта было определено, что данные баз данных, а также их структура и семантика должны быть сохранены. Чтобы сохранить все три элемента, в рамках проекта RODA был разработан набор инструментов для сохранения базы данных[10].

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 3 4 5 6 Stichting ICTU. Testbed Digitale Bewaring. Van digitale vluchtigheid naar digitaal houvast. — Den Haag: Testbed Digitale Bewaring, 2003. — 4 dl. с. — ISBN 90-807758-1-9, 978-90-807758-1-7.
  2. 1 2 Kevin Ashley. The preservation of databases // VINE. — 2004-01-01. — Т. 34, вып. 2. — С. 66–70. — ISSN 0305-5728. — doi:10.1108/03055720410551075.
  3. 1 2 3 4 Brogan, M., & Brown, J. (n.d.). Challenges in dgital preservation: Relational databases. School of Computer and Information Science, Edith Cowan University.. Дата обращения: 5 июля 2022. Архивировано 6 октября 2021 года.
  4. 1 2 3 4 Andrew Lindley. Database Preservation Evaluation Report -SIARD vs. CHRONOS Preserving complex structures as databases through a record centric approach? (англ.). — 2013. — doi:10.13140/2.1.3272.8005.
  5. SIARD (Software Independent Archiving of Relational Databases) Version 1.0. www.loc.gov (30 мая 2015). Дата обращения: 12 июля 2022. Архивировано 12 июля 2022 года.
  6. Bruggisser, H., Büchler, G., Dubois, A., Kaiser, M., Kansy, L., Lischer, M., Röthlisberger-Jourdan, C., Thomas, H., & Voss, A. (2015). eCH-0165 SIARD format specification 2.0 (draft). eCH E Government Standards. https://www.eark-project.com/resources/specificationdocs/32-specification-for-siard-format-v20/STAN_e_FINAL_2015-07-04_eCH-0165_V2%200_SIARD-Format.pdf Архивная копия от 10 мая 2022 на Wayback Machine
  7. 1 2 3 4 SIARD (Software Independent Archiving of Relational Databases) Version 1.0. www.loc.gov (30 мая 2015). Дата обращения: 15 июля 2022. Архивировано 12 июля 2022 года.
  8. Relational Database Preservation through XML modelling. Extreme Markup Languages (7 августа 2007). Дата обращения: 16 апреля 2017. Архивировано 21 января 2022 года.
  9. 1 2 Brandl, S., & Keller-Marxer, P. (2007, March 23). Long-term archiving of relational databases with Chronos [Paper presentation]. First International Workshop on Database Preservation (PresDB’07), Edinburgh, Scotland. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.459.5158&rep=rep1&type=pdf Архивная копия от 6 октября 2021 на Wayback Machine
  10. 1 2 3 4 Ramalho, J.C., Faria, L., Helder, S., & Coutada, M. (2013, December 31). Database Preservation Toolkit: A flexible tool to normalize and give access to databases. University of Minho. https://core.ac.uk/display/55635702?source=1&algorithmId=15&similarToDoc=55614406&similarToDocKey=CORE&recSetID=f3ffea4d-1504-45e9-bfd6-a0495f5c8f9c&position=2&recommendation_type=same_repo&otherRecs=55614407,55635702,55607961,55613627,2255664 Архивная копия от 23 мая 2022 на Wayback Machine
  11. 1 2 db-preservation-toolkit by keeps. Дата обращения: 16 июля 2022. Архивировано 12 июля 2022 года.
  12. RODA Community - Repository of Authentic Digital Objects. Дата обращения: 16 июля 2022. Архивировано 10 мая 2022 года.
  13. Heuscher, Stephan. Providing Authentic Long-term Archival Access to Complex Relational Data // Proceedings PV-2004: Ensuring the Long-Term Preservation and Adding Value to the Scientific and Technical Data, 5-7 October 2004 / Stephan Heuscher, Stephan Jaermann, Peter Keller-Marxer … [и др.]. — 2004. — P. 241–261.
  14. RODA and Crib: A Service-Oriented Digital Repository. Дата обращения: 16 июля 2022. Архивировано 20 января 2022 года.
  15. Duurzaam beheer van digitaal archiefmateriaal - Nationaal Archief. Дата обращения: 16 июля 2022. Архивировано 31 марта 2009 года.
  16. LOCKSS - Lots of Copies Keep Stuff Safe. Stanford University. Дата обращения: 16 апреля 2017. Архивировано 13 июля 2022 года.
  17. Ribeiro, C., & David, G. (2009, March 11). Database preservation. Digital Preservation Europe. https://digitalpreservationeurope.eu/publications/briefs/database_preservation_ribiero_david.pdf Архивная копия от 10 мая 2022 на Wayback Machine